package com.sm.service;

import java.util.ArrayList;
import java.util.List;

import com.sm.model.FirstSort;
import com.sm.model.Goods;
import com.sm.model.SecondSort;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sm.dao.FirstSortMapper;
import com.sm.dao.GoodsMapper;
import com.sm.dao.SecondSortMapper;
import com.sm.vo.SortGoodsVO;

/**
 *	圆梦超市service层
 * @author 60915
 */
@Service
public class SupermarketHomeService {

	@Autowired
	private FirstSortMapper firstSortMapper;
	@Autowired
	private SecondSortMapper secondSortMapper;
	@Autowired
	private GoodsMapper goodsMapper;


	/**
	 *	查询所有一级类别
	 * @return
	 */
	public List<FirstSort> selectAllFirstSort(){

		return firstSortMapper.selectAllFirstSort();
	}



	/**
	 *	通过一级类别id查询二级类别以及其包含的商品
	 * @param firstSortId	一级类别id
	 * @return
	 */
	public List<SortGoodsVO> selectGoodsList(Integer firstSortId) {

		//通过一级类别id查询其包含的所有的二级类别。
		List<SecondSort> secondSorts = secondSortMapper.selectAllSecondSort(firstSortId);

		if(secondSorts == null || secondSorts.size() == 0) {
			return null;
		}

		//创建一个分类商品实体类集合
		List<SortGoodsVO> sortGoodsVOs = new ArrayList<SortGoodsVO>();

		//遍历查询到的所有的二级类别。
		for (SecondSort secondSort : secondSorts) {

			int secondSortId = secondSort.getSecondSortId();//获取二级类别id

			//通过二级类别id和一级类别id查询其所有的商品
			List<Goods> goodsList = goodsMapper.selectGoodsBySort(firstSortId,secondSortId);

			//创建一个SortGoodsVO分类商品实体类并添加二级类别和二级类别下的所有商品
			SortGoodsVO sortGoodsVO = new SortGoodsVO(secondSort,goodsList);

			//将SortGoodsVO分类商品对象添加到集合中。
			sortGoodsVOs.add(sortGoodsVO);

		}

		return sortGoodsVOs;
	}



}
